﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Tools.SubStream;
using System.Collections;

namespace Tools.File.Hashing {
    public class FileHasherSettings {

        public FileHasherSettings ( ) { }
        public static FileHasherSettings Default {
            get {
                return new FileHasherSettings( );
            }
        }
    }

    public class HashingSettings {
        
    }

    public class FileHasher {
        protected FileHasherSettings settings;
        protected StreamMuxer stream;
        private FileHasher ( StreamMuxer stream ) {

        }

        public FileHasher ( String fileName ) {
            this.stream = new StreamMuxer( System.IO.File.OpenRead( fileName ) );
        }

        public FileHasher ( String fileName, FileHasherSettings settings ) {
            this.Settings = settings;
            this.stream = new StreamMuxer( System.IO.File.OpenRead( fileName ) );
        }


        public FileHasherSettings Settings {
            set {
                this.settings = value;
            }
            get {
                if ( this.settings == null ) {
                    this.settings = FileHasherSettings.Default;
                }
                return this.settings;
            }
        }


        public Hashtable Hash ( ) {
            
            
            throw new NotImplementedException( );
        }
    }
}
